home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / gaim / debug.h < prev    next >
C/C++ Source or Header  |  2005-10-18  |  5KB  |  181 lines

  1. /**
  2.  * @file debug.h Debug API
  3.  * @ingroup core
  4.  *
  5.  * gaim
  6.  *
  7.  * Gaim is the legal property of its developers, whose names are too numerous
  8.  * to list here.  Please refer to the COPYRIGHT file distributed with this
  9.  * source distribution.
  10.  *
  11.  * This program is free software; you can redistribute it and/or modify
  12.  * it under the terms of the GNU General Public License as published by
  13.  * the Free Software Foundation; either version 2 of the License, or
  14.  * (at your option) any later version.
  15.  *
  16.  * This program is distributed in the hope that it will be useful,
  17.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  18.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  19.  * GNU General Public License for more details.
  20.  *
  21.  * You should have received a copy of the GNU General Public License
  22.  * along with this program; if not, write to the Free Software
  23.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  24.  */
  25. #ifndef _GAIM_DEBUG_H_
  26. #define _GAIM_DEBUG_H_
  27.  
  28. #include <stdarg.h>
  29.  
  30. /**
  31.  * Debug levels.
  32.  */
  33. typedef enum
  34. {
  35.     GAIM_DEBUG_ALL = 0,  /**< All debug levels.              */
  36.     GAIM_DEBUG_MISC,     /**< General chatter.               */
  37.     GAIM_DEBUG_INFO,     /**< General operation Information. */
  38.     GAIM_DEBUG_WARNING,  /**< Warnings.                      */
  39.     GAIM_DEBUG_ERROR,    /**< Errors.                        */
  40.     GAIM_DEBUG_FATAL     /**< Fatal errors.                  */
  41.  
  42. } GaimDebugLevel;
  43.  
  44. /**
  45.  * Debug UI operations.
  46.  */
  47. typedef struct
  48. {
  49.     void (*print)(GaimDebugLevel level, const char *category,
  50.                   const char *format, va_list args);
  51.  
  52. } GaimDebugUiOps;
  53.  
  54. #ifdef __cplusplus
  55. extern "C" {
  56. #endif
  57.  
  58. /**************************************************************************/
  59. /** @name Debug API                                                       */
  60. /**************************************************************************/
  61. /**
  62.  * Outputs debug information.
  63.  *
  64.  * This differs from gaim_debug() in that it takes a va_list.
  65.  *
  66.  * @param level    The debug level.
  67.  * @param category The category (or @c NULL).
  68.  * @param format   The format string.
  69.  * @param args     The format parameters.
  70.  *
  71.  * @see gaim_debug()
  72.  */
  73. void gaim_debug_vargs(GaimDebugLevel level, const char *category,
  74.                       const char *format, va_list args);
  75.  
  76. /**
  77.  * Outputs debug information.
  78.  *
  79.  * @param level    The debug level.
  80.  * @param category The category (or @c NULL).
  81.  * @param format   The format string.
  82.  */
  83. void gaim_debug(GaimDebugLevel level, const char *category,
  84.                 const char *format, ...);
  85.  
  86. /**
  87.  * Outputs misc. level debug information.
  88.  *
  89.  * This is a wrapper for gaim_debug(), and uses GAIM_DEBUG_MISC as
  90.  * the level.
  91.  *
  92.  * @param category The category (or @c NULL).
  93.  * @param format   The format string.
  94.  *
  95.  * @see gaim_debug()
  96.  */
  97. void gaim_debug_misc(const char *category, const char *format, ...);
  98.  
  99. /**
  100.  * Outputs info level debug information.
  101.  *
  102.  * This is a wrapper for gaim_debug(), and uses GAIM_DEBUG_INFO as
  103.  * the level.
  104.  *
  105.  * @param category The category (or @c NULL).
  106.  * @param format   The format string.
  107.  *
  108.  * @see gaim_debug()
  109.  */
  110. void gaim_debug_info(const char *category, const char *format, ...);
  111.  
  112. /**
  113.  * Outputs warning level debug information.
  114.  *
  115.  * This is a wrapper for gaim_debug(), and uses GAIM_DEBUG_WARNING as
  116.  * the level.
  117.  *
  118.  * @param category The category (or @c NULL).
  119.  * @param format   The format string.
  120.  *
  121.  * @see gaim_debug()
  122.  */
  123. void gaim_debug_warning(const char *category, const char *format, ...);
  124.  
  125. /**
  126.  * Outputs error level debug information.
  127.  *
  128.  * This is a wrapper for gaim_debug(), and uses GAIM_DEBUG_ERROR as
  129.  * the level.
  130.  *
  131.  * @param category The category (or @c NULL).
  132.  * @param format   The format string.
  133.  *
  134.  * @see gaim_debug()
  135.  */
  136. void gaim_debug_error(const char *category, const char *format, ...);
  137.  
  138. /**
  139.  * Outputs fatal error level debug information.
  140.  *
  141.  * This is a wrapper for gaim_debug(), and uses GAIM_DEBUG_ERROR as
  142.  * the level.
  143.  *
  144.  * @param category The category (or @c NULL).
  145.  * @param format   The format string.
  146.  *
  147.  * @see gaim_debug()
  148.  */
  149. void gaim_debug_fatal(const char *category, const char *format, ...);
  150.  
  151. /*@}*/
  152.  
  153. /**************************************************************************/
  154. /** @name UI Registration Functions                                       */
  155. /**************************************************************************/
  156. /*@{*/
  157.  
  158. /**
  159.  * Sets the UI operations structure to be used when outputting debug
  160.  * information.
  161.  *
  162.  * @param ops The UI operations structure.
  163.  */
  164. void gaim_debug_set_ui_ops(GaimDebugUiOps *ops);
  165.  
  166. /**
  167.  * Returns the UI operations structure used when outputting debug
  168.  * information.
  169.  *
  170.  * @return The UI operations structure in use.
  171.  */
  172. GaimDebugUiOps *gaim_debug_get_ui_ops(void);
  173.  
  174. /*@}*/
  175.  
  176. #ifdef __cplusplus
  177. }
  178. #endif
  179.  
  180. #endif /* _GAIM_DEBUG_H_ */
  181.